import tkinter as tk
from tkinter import ttk


class AboutDialog(tk.Toplevel):
    """关于对话框"""

    def __init__(self, parent):
        super().__init__(parent)
        self.title("关于")
        self.geometry("400x400")
        self.resizable(False, False)

        # 设置模态
        self.transient(parent)
        self.grab_set()

        self._init_ui()

        # 使用 after 方法延迟执行居中显示
        self.after(10, lambda: parent.app.center_dialog(self))

    def _init_ui(self):
        """初始化UI"""
        # 创建内容框架
        main_frame = ttk.Frame(self, padding="20")
        main_frame.pack(fill=tk.BOTH, expand=True)

        # 标题
        title_label = ttk.Label(
            main_frame, text="数据对比工具", font=("微软雅黑", 16, "bold")
        )
        title_label.pack(pady=(0, 10))

        # 版本信息
        version_label = ttk.Label(main_frame, text="版本: 1.0.0", font=("微软雅黑", 10))
        version_label.pack(pady=(0, 15))

        # 功能简介
        desc_text = (
            "功能简介：\n\n"
            "1. 支持多种数据源对比（数据库、Excel、CSV、JSON）\n"
            "2. 支持字段映射和联合主键\n"
            "3. 支持数据差异高亮显示\n"
            "4. 支持导出对比结果\n"
            "5. 支持保存和加载对比方案\n"
            "6. 支持列名显示切换\n"
            "7. 支持全量/差异数据显示切换"
        )
        desc_label = ttk.Label(
            main_frame, text=desc_text, justify=tk.LEFT, wraplength=360
        )
        desc_label.pack(pady=(0, 15))

        # 版权信息
        copyright_label = ttk.Label(
            main_frame, text="Copyright © 2024", font=("微软雅黑", 9)
        )
        copyright_label.pack(pady=(10, 10))

        # 确定按钮
        ttk.Button(main_frame, text="确定", command=self.destroy, width=15).pack(
            pady=(10, 0)
        )
